const { optimize } = require("svgo");
const hx = require("hbuilderx");
//该方法将在插件激活的时候调用
function activate(context) {
	const disposable = hx.commands.registerCommand('extension.svgo', async () => {
		// 获取当前激活的编辑器
		const editor = await hx.window.getActiveTextEditor()
		// 获取文档信息
		const { fileName, languageId, lineCount, getText } = editor.document
		// 判断是否是svg文件
		if(fileName.endsWith('.svg')) {
			// 去最后一行
			await editor.gotoLine(lineCount)
			const line = await editor.document.lineFromPosition(editor.selection.active)
			// 获取svg文件内容
			const svgString = getText()
			// 全选内容
			await hx.commands.executeCommand('editor.action.selectAll')
			// 删除内容
			await hx.commands.executeCommand('deleteLeft')
			// svgo
			const { data: optimizedSvgString } = optimize(svgString, {
				multipass: true
			})
			editor.edit(editBuilder => {
				const range = {
					start: 0,
					end: 0
				}
				editBuilder.replace(range, optimizedSvgString)
				hx.window.setStatusBarMessage('svgo 成功', 600, 'info')
			})
		}
	});
	//订阅销毁钩子，插件禁用的时候，自动注销该command。
	context.subscriptions.push(disposable)
}
//该方法将在插件禁用的时候调用（目前是在插件卸载的时候触发）
function deactivate() {

}
module.exports = {
	activate,
	deactivate
}
